#include "arrayStack.h"
#include "listStack.h"
#include <stdio.h>

int main(){
    // 数组栈测试
    ArrayStack_t stack;
    initArrayStack(&stack, 10);
    // 入栈
    for (int i = 0; i < 11; ++i) {
        pushArrayStack(&stack, i);
    }

   for(int i=0;i<11;i++){
       // 打印栈顶元素
       Element_t top = getTopArrayStack(&stack);
       if(emptyArrayStack(&stack)) break;
       printf("%d ",top);
       // 出栈
       popArrayStack(&stack);
   }
    popArrayStack(&stack);
    releaseArrayStack(&stack);

printf("------------------------\n");

    // 链表栈测试
    ListStack_t *listStack = createListStack();
    if(listStack==NULL) return -1;
    // 入栈
    for (int i = 0; i < 5; ++i) {
        pushListStack(listStack, i);
    }
    for(int i=0;i<6;i++){
        // 打印栈顶元素
        Element_t top = getTopListStack(listStack);
        if(isEmptyListStack(listStack)) break;
        printf("%d ",top);
        // 出栈
        popListStack(listStack);
    }
    popListStack(listStack);
    releaseListStack(listStack);
    return 0;
}